﻿using System;
using System.ServiceModel;
using System.Collections.Generic;
using com.clinica.business.entities;
using com.clinica.business.BE.actplansalud;
using com.clinica.business.BE.comun;
/****************************************************************************************
 * Sistema    : Sistema de Gestión de Clinica
 * Modulo     : Facturación y Presupuestos
 * Descripción: 
 * Autor      : JPEREZ
 * Fecha      : 2011-06-01
 ****************************************************************************************/

namespace com.clinica.business.BL.interfaces.actplansalud
{
    [ServiceContract(Namespace = "http://com.clinica.business.BL.interfaces.actplansalud", Name = "IPlanSaludBL", SessionMode = SessionMode.Allowed)]
    public interface IPlanSaludBL
    {
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerListaPlanSalud")]
        List<PlanSaludBE> ObtenerListaPlanSalud(PlanSaludBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerListaXEstadoPlanSalud")]
        List<PlanSaludBE> ObtenerListaXEstadoPlanSalud(PlanSaludBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);
       
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerTipoDocumento")]
        List<ParametrosBE> ObternerTipoDocumento(ParametrosBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerCiaSeguros")]
        List<CiaSeguroBE> ObternerCiaSeguros(CiaSeguroBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerEmpresa")]
        List<EmpresaBE> ObternerEmpresa(EmpresaBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObternerPlanSaludOrigen")]
        List<PlanSaludBE> ObternerPlanSaludOrigen(PlanSaludBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerSolicitudPlanSalud")]
        List<PlanSaludBE> ObtenerSolicitudPlanSalud(PlanSaludBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "GuardarPlanSalud")]
        int GuardarPlanSalud(int accion, List<PlanSaludBE> request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AprobarPlanSalud")]
        int AprobarPlanSalud(PlanSaludBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "GenerarPlanSalud")]
        int GenerarPlanSalud(PlanSaludBE request, int accion);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerListaPendientePlanSalud")]
        List<PlanSaludBE> ObtenerListaPendientePlanSalud(PlanSaludBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);


        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "RechazarPlanSalud")]
        int RechazarPlanSalud(PlanSaludBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "CargarPlanSaludConsulta")]
        List<PlanSaludBE> CargarPlanSaludConsulta(PlanSaludBE request);

        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ObtenerPlanSaludConsulta")]
        List<PlanSaludBE> ObtenerPlanSaludConsulta(PlanSaludBE request, DateTime dtFecha_Inicio, DateTime dtFecha_Fin);


        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AnularPlanSalud")]
        int AnularPlanSalud(PlanSaludBE request);


    }
}
